package com.szwistar.common.meta;

import java.lang.annotation.*;


/**
 * 针对核心对象 API 接口函数的注解类
 * @author 张勇 2018-3-21
 */
@Documented
@Target(ElementType.METHOD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface DefApi {
    /**
     * 此 API 函数对应的命令字(具体含义未定义，默认做为 API 排序使用)
     */
    int cmd() default 0;

    /**
     * 此 API 函数通过http调用时的别名（默认情况下为空，表示使用 API 函数本身的名字）
     */
    String alias() default "";

	/**
	 * 此 API 函数是否可被做为智能规则编辑时对象的可视化调用接口VCI(Visual-Callable-Interface)使用
	 */
    boolean vci() default false;

    /**
     * 参数类型
     */
    Class<?> paramType() default Object.class;

    /**
     * 此 API 函数的中文名称，可被做为智能规则编辑时对象的动作名称
     */
    String title() default "";

    /**
     * 此 API 函数的客户化功能描述，可被做为智能规则编辑时对象的动作描述
     */
    String description() default "";
}
